﻿Option Strict On
Option Explicit On

Imports System.Collections.Generic

Public Class GestorPacientes
    Inherits Laboratorio_Negocio.GestorPersona

    Public Function getPaciente(ByVal strId As String) As CapaDeNegocio.Paciente
        Dim objDataAccess As laboratorio_Datos.DataAccess = New laboratorio_Datos.DataAccess
        Dim objDataReader As OleDb.OleDbDataReader

        objDataReader = objDataAccess.getDataReader("SELECT * FROM LABT_PACIENTES WHERE id_paciente='" & strId & "'")
        Dim objPaciente As CapaDeNegocio.Paciente
        Dim objTipoDocumento As CapaDeNegocio.TipoDocumento
        While objDataReader.Read
            objPaciente = New CapaDeNegocio.Paciente
            objTipoDocumento = New CapaDeNegocio.TipoDocumento
            With objPaciente
                .id = objDataReader!id_paciente.ToString
                .apellido = Trim(objDataReader!APELLIDO.ToString)
                .nombre = Trim(objDataReader!NOMBRE.ToString)
                .numeroDoc = CType(Trim(objDataReader!NUMERO_DOCUMENTO.ToString), Integer)
                .fechaNacimiento = CType(objDataReader!FECHA_NACIMIENTO, Date)
                .edad = CType(objDataReader!edad, Integer)
                .calle = Trim(objDataReader!CALLE.ToString)
                .numero = CType(objDataReader!NUMERO, Integer)
                .telefono = Trim(objDataReader!TELEFONO.ToString)
                .mail = Trim(objDataReader!MAIL.ToString)
                .sexo = Trim(objDataReader!SEXO.ToString)
                .raza = Trim(objDataReader!raza.ToString)
                .iniciales = Trim(objDataReader!iniciales.ToString)
                objTipoDocumento.idTipoDoc = Trim(objDataReader!ID_TIPO_DOCUMENTO.ToString)
                .tipoDocumento = objTipoDocumento
            End With
        End While

        objDataAccess.CloseConnection()

        Return objPaciente
    End Function

    Public Function setPaciente(ByVal objPaciente As CapaDeNegocio.Paciente) As String
        Dim objDataAccess As laboratorio_Datos.DataAccess = New laboratorio_Datos.DataAccess
        Dim strSQL As String
        Dim objDataReader As OleDb.OleDbDataReader
        objDataReader = objDataAccess.getDataReader("SELECT NVL(MAX(id_paciente),0)+1 FROM LABT_PACIENTES")
        Dim strId As String
        While objDataReader.Read
            strId = objDataReader.Item(0).ToString
        End While
        strSQL = "INSERT INTO LABT_PACIENTES (id_paciente,apellido,nombre,id_tipo_documento,numero_documento," _
        & "fecha_nacimiento,calle,numero,telefono,mail,sexo,raza) "
        strSQL = strSQL & "VALUES ('" & strId & "','" & objPaciente.apellido & "','" & objPaciente.nombre & "','" _
        & objPaciente.tipoDocumento.idTipoDoc & "'," & objPaciente.numeroDoc & ",to_date('" _
        & objPaciente.fechaNacimiento & "','dd-mm-yyyy'),'" & objPaciente.calle & "'," & objPaciente.numero & ",'" _
        & objPaciente.telefono & "','" & objPaciente.mail & "','" & objPaciente.sexo & "','" & objPaciente.raza & "')"

        If objDataAccess.ejecutaSQL(strSQL) > 0 Then
            Return strId
        Else
            Return ""
        End If
    End Function
End Class
'Public Function GetPaciente() As CapaDeNegocio.Paciente
'    Dim objPaciente As CapaDeNegocio.Paciente = New CapaDeNegocio.Paciente

'    objPaciente.Id = 1
'    objPaciente.Nombre = "Mati"

'    Dim objEnfermedad As New Enfermedad

'    objEnfermedad.Id = 1

'    objEnfermedad.Nombre = "Gripe"

'    objPaciente.Enfermedad = objEnfermedad

'    objPaciente.Enfermedad.Nombre = ""

'    Return objPaciente
'End Function

'Public Shared Sub ALgo(ByVal param As Object)

'End Sub

'Public Shared Function getPacientes() As List(Of CapaDeNegocio.Paciente)
'    Dim objPaciente As CapaDeNegocio.Paciente
'    Dim objList As New List(Of CapaDeNegocio.Paciente)
'    For i As Integer = 0 To 2
'        objPaciente = New CapaDeNegocio.Paciente
'        objPaciente.Id = i + 1
'        objPaciente.Nombre = (i + 1).ToString

'        objList.Add(objPaciente)
'    Next


'    Return objList

'End Function